Runtime Constraint Checking Approaches for OCL, A Critical Comparison
نویسندگان
چکیده
There are many benefits of checking design constraints at runtime—for example, automatic detection of design drift or corrosion. However, there is no comparative analysis of different approaches although such an analysis could provide a sound basis for determining the appropriateness of one approach over the others. In this paper we conduct a comparative analysis and evaluation of different constraint checking approaches possible for the Object Constraint Language (OCL). We compare several approaches including (1) direct translation to implementation languages, (2) use of executable assertion languages, and (3) use of aspect-oriented programming languages. Our comparison includes both quantitative metrics such as runtime performance and qualitative metrics such as maintainability of constraint checking code. We found that the implementation language-based approaches perform better in terms of memory footprint and runtime overheads but the other approaches are more appealing in terms of maintainability. Keywords-pre and postconditions; runtime constraint checking; AspectJ; JML; OCL
منابع مشابه
Checking Design Constraints at Run-time Using OCL and AspectJ
Design decisions and constraints of a software system can be specified precisely using a formal notation such as the Object Constraint Language (OCL). However, they are not executable, and assuring the conformance of an implementation to its design is hard. The inability of expressing design constraints in an implementation and checking them at runtime invites, among others, the problem of desi...
متن کاملA Library-Based Approach to Translating OCL Constraints to JML Assertions for Runtime Checking
OCL is a formal notation to specify constraints on UML models that cannot otherwise be expressed by diagrammatic notations such as class diagrams. Using OCL one can document detailed design decisions and choices along with the behavior, e.g., class invariants and method pre and postconditions. However, OCL constraints cannot be directly executed and checked at runtime by an implementation, thus...
متن کاملChecking OCL Constraints in Distributed Systems using J2EE/EJB
We present a pragmatic approach using formal methods to increase the quality of distributed component based systems: Based on UML class diagrams annotated with OCL constraints, code for runtime checking of components in J2EE/EJB is automatically generated. Thus, a UML–model for a component can be used in a black–box test for the component. Further we introduce different design patterns for EJBs...
متن کاملTesting Distributed Component Based Systems Using UML/OCL
We present a pragmatic approach using formal methods to increase the quality of distributed component based systems: Based on UML class diagrams annotated with OCL constraints, code for runtime checking of components in J2EE/EJB is automatically generated. Thus, a UML–model for a component can be used in a black–box test for the component. Further we introduce different design patterns for EJBs...
متن کاملNew Type Checking Rules for OCL (Collection) Expressions
The Object Constraint Language OCL is an integral part of UML, the Unified Modeling Language standard. It has been added to Rational’s UML core as a logic-based sublanguage for the definition of integrity constraints (invariants) on class diagrams as well as for the definition of preand postconditions of operations. Despite of the fact that OCL is called a statically typed language its type che...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2010